module.exports = {
	deep_copy: (obj) => {
		return JSON.parse(JSON.stringify(obj))
	},
	create_uuid: () => {
		return (Math.random() * 10000000).toString(16).substr(0, 4) + (new Date()).getTime() + Math.random()
			.toString().substr(2, 5);
	},
	rnd: (Min, Max) => {
		var Range = Max - Min;
		var Rand = Math.random();
		var num = Min + Math.round(Rand * Range);
		return num;
	},
	getRandomElements: (arr, n) => {
		// 创建一个新的数组，防止修改原数组
		const copyArr = arr.slice();
		// 存储随机选择的元素
		const result = [];
		// 当数组中还有元素时继续循环
		while (result.length < n && copyArr.length > 0) {
			// 生成一个随机索引
			const randomIndex = Math.floor(Math.random() * copyArr.length);
			// 将选择的元素添加到结果数组中
			result.push(copyArr.splice(randomIndex, 1)[0]);
		}
		return result;
	},
	probability(prizes) {
		// 计算概率总和
		const totalProbability = prizes.reduce((acc, cur) => acc + cur.PR, 0);

		// 生成随机数
		const randomNum = Math.random();

		// 遍历奖品数组，确定抽到的奖品
		let currentProbability = 0;
		for (let i = 0; i < prizes.length; i++) {
			const prize = prizes[i];
			currentProbability += prize.PR / totalProbability;
			if (randomNum <= currentProbability) {
				return prize;
			}
		}

		// 如果没有中奖，则返回 null 或者一个默认奖品
		return null;
	},
}